// #ifndef VUE3
import Vue from 'vue'
import App from './App'
import showMsg from '@/common/ShowMsg';
// import { promisifyAll, promisify } from 'miniprogram-api-promise';

// // 导入网络请求包 按需导入 $http 对象
import {
	$http
} from '@escook/request-miniprogram'
// // // 在 uni-app 项目中，可以把 $http 挂载到 uni 顶级对象之上，方便全局调用
uni.$http = $http
// Vue.prototype.$http = $http
// //这是请求的根路径
$http.baseUrl = 'https://www.uinav.com'


// promisifyAll(uni.$http,uni)

// 请求拦截器 请求开始之前做一些事情
$http.beforeRequest = function(options) {
	// console.info('来了老弟')
	// console.log(options)
	uni.showLoading({
		title: '数据加载中...'
	})
	// 判断请求的是否为有权限的 API 接口
	if (options.url.indexOf('/my/') !== -1) {
		// 为请求头添加身份认证字段
		options.header = {
			// 字段的值可以直接从 vuex 中进行获取
			Authorization: store.state.m_user.token,
		}
	}
}



// // 响应拦截器 请求完成之后做一些事情
// $http.afterRequest = function () {
//   uni.hideLoading()
// }

// 封装弹框的方法
uni.$showMsg = function(title = '数据请求失败！', duration = 1500) {
	uni.showToast({
		title,
		duration,
		icon: 'none'
	})
}

Vue.config.productionTip = false
App.mpType = 'app'

const app = new Vue({
	...App,
	store

})
app.$mount()
// #endif

// #ifdef VUE3
import {
	createSSRApp
} from 'vue'
import App from './App.vue'
import store from '@/store/store.js'
import showMsg from '@/common/ShowMsg';
// 导入网络请求包 按需导入 $http 对象
import {
	$http
} from '@escook/request-miniprogram'

uni.$http = $http
// 请求的根路径
$http.baseUrl = 'https://www.uinav.com'

// 响应拦截器
// $http.afterRequest = function() {
// 		console.info('响应拦截器')
// 			console.log(options)
// 	// uni.hideLoading()
// }
// console.log('是vue3环境 - 执行代码块')
// 请求拦截器 请求开始之前做一些事情
$http.beforeRequest = function(options) {
	// console.info('来了老弟')
	// console.log(options)
	// uni.showLoading({
	// 	title: '数据加载中...'
	// })
	// 判断请求的是否为有权限的 API 接口
	if (options.url.indexOf('/my/') !== -1) {
		// 为请求头添加身份认证字段
		options.header = {
			// 字段的值可以直接从 vuex 中进行获取
			// Authorization: store.state.m_user.token,
		}
	}
}

// console.log('是vue3环境 - 执行代码块end')
export function createApp() {
	const app = createSSRApp(App)
	app.use(store)
	// app.use($http)
	return {
		app,
		showMsg,
		store,
		// $http
	}
}
// #endif
